﻿#region Using directives

using System;
using System.Data;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using NetROS.Tiers.Entities;
using NetROS.Tiers.Data;

#endregion

namespace NetROS.Tiers.Data.Bases
{	
	///<summary>
	/// This class is the base class for any <see cref="VwObracunDefaultVrijednostiProviderBase"/> implementation.
	/// It exposes CRUD methods as well as selecting on index, foreign keys and custom stored procedures.
	///</summary>
	public abstract class VwObracunDefaultVrijednostiProviderBaseCore : EntityViewProviderBase<VwObracunDefaultVrijednosti>
	{
		#region Custom Methods
		
		
		#endregion

		#region Helper Functions
		
		/*
		///<summary>
		/// Fill an VList&lt;VwObracunDefaultVrijednosti&gt; From a DataSet
		///</summary>
		/// <param name="dataSet">the DataSet</param>
		/// <param name="rows">The collection to fill</param>
		/// <param name="start">Start row</param>
		/// <param name="pagelen">number of row.</param>
		///<returns><see chref="VList&lt;VwObracunDefaultVrijednosti&gt;"/></returns>
		protected static VList&lt;VwObracunDefaultVrijednosti&gt; Fill(DataSet dataSet, VList<VwObracunDefaultVrijednosti> rows, int start, int pagelen)
		{
			if (dataSet.Tables.Count == 1)
			{
				return Fill(dataSet.Tables[0], rows, start, pagelen);
			}
			else
			{
				return new VList<VwObracunDefaultVrijednosti>();
			}	
		}
		
		
		///<summary>
		/// Fill an VList&lt;VwObracunDefaultVrijednosti&gt; From a DataTable
		///</summary>
		/// <param name="dataTable">the DataTable that hold the data.</param>
		/// <param name="rows">The collection to fill</param>
		/// <param name="start">Start row</param>
		/// <param name="pagelen">number of row.</param>
		///<returns><see chref="VList<VwObracunDefaultVrijednosti>"/></returns>
		protected static VList&lt;VwObracunDefaultVrijednosti&gt; Fill(DataTable dataTable, VList<VwObracunDefaultVrijednosti> rows, int start, int pagelen)
		{
			int recordnum = 0;
			
			System.Collections.IEnumerator dataRows =  dataTable.Rows.GetEnumerator();
			
			while (dataRows.MoveNext() && (pagelen != 0))
			{
				if(recordnum >= start)
				{
					DataRow row = (DataRow)dataRows.Current;
				
					VwObracunDefaultVrijednosti c = new VwObracunDefaultVrijednosti();
					c.VrstaUplateRSM = (Convert.IsDBNull(row["VrstaUplateRSM"]))?(int)0:(System.Int32)row["VrstaUplateRSM"];
					c.MinimalniOsobniOdbitak = (Convert.IsDBNull(row["MinimalniOsobniOdbitak"]))?(int)0:(System.Int32)row["MinimalniOsobniOdbitak"];
					c.MaksimalniIznosPorezneOlaksice = (Convert.IsDBNull(row["MaksimalniIznosPorezneOlaksice"]))?(int)0:(System.Int32)row["MaksimalniIznosPorezneOlaksice"];
					c.IdentifikatorIDObrasca = (Convert.IsDBNull(row["IdentifikatorIDObrasca"]))?(int)0:(System.Int32)row["IdentifikatorIDObrasca"];
					c.DoprinosPoDanuBoravkaUInozemstvu = (Convert.IsDBNull(row["DoprinosPoDanuBoravkaUInozemstvu"]))?0:(System.Decimal?)row["DoprinosPoDanuBoravkaUInozemstvu"];
					c.DoprinosNezgoda = (Convert.IsDBNull(row["DoprinosNezgoda"]))?0.0F:(System.Single?)row["DoprinosNezgoda"];
					c.DoprinosZdravstveno = (Convert.IsDBNull(row["DoprinosZdravstveno"]))?0.0F:(System.Single?)row["DoprinosZdravstveno"];
					c.DoprinosZaposljavanjeSInvaliditetom = (Convert.IsDBNull(row["DoprinosZaposljavanjeSInvaliditetom"]))?0.0F:(System.Single?)row["DoprinosZaposljavanjeSInvaliditetom"];
					c.RSMVrstaObveznika = (Convert.IsDBNull(row["RSMVrstaObveznika"]))?(int)0:(System.Int32)row["RSMVrstaObveznika"];
					c.DoprinosZaposljavanje = (Convert.IsDBNull(row["DoprinosZaposljavanje"]))?0.0F:(System.Single?)row["DoprinosZaposljavanje"];
					c.MIO1aPostotak = (Convert.IsDBNull(row["MIO1aPostotak"]))?0.0F:(System.Single?)row["MIO1aPostotak"];
					c.MIO1bPostotak = (Convert.IsDBNull(row["MIO1bPostotak"]))?0.0F:(System.Single?)row["MIO1bPostotak"];
					c.MIO2Postotak = (Convert.IsDBNull(row["MIO2Postotak"]))?0.0F:(System.Single?)row["MIO2Postotak"];
					c.NajvisaMjOsnovica = (Convert.IsDBNull(row["NajvisaMjOsnovica"]))?0:(System.Decimal?)row["NajvisaMjOsnovica"];
					c.AcceptChanges();
					rows.Add(c);
					pagelen -= 1;
				}
				recordnum += 1;
			}
			return rows;
		}
		*/	
						
		///<summary>
		/// Fill an <see cref="VList&lt;VwObracunDefaultVrijednosti&gt;"/> From a DataReader.
		///</summary>
		/// <param name="reader">Datareader</param>
		/// <param name="rows">The collection to fill</param>
		/// <param name="start">Start row</param>
		/// <param name="pageLength">number of row.</param>
		///<returns>a <see cref="VList&lt;VwObracunDefaultVrijednosti&gt;"/></returns>
		protected VList<VwObracunDefaultVrijednosti> Fill(IDataReader reader, VList<VwObracunDefaultVrijednosti> rows, int start, int pageLength)
		{
			int recordnum = 0;
			while (reader.Read() && (pageLength != 0))
			{
				if(recordnum >= start)
				{
					VwObracunDefaultVrijednosti entity = null;
					if (DataRepository.Provider.UseEntityFactory)
					{
						entity = EntityManager.CreateViewEntity<VwObracunDefaultVrijednosti>("VwObracunDefaultVrijednosti",  DataRepository.Provider.EntityCreationalFactoryType); 
					}
					else
					{
						entity = new VwObracunDefaultVrijednosti();
					}
					entity.VrstaUplateRSM = (System.Int32)reader["VrstaUplateRSM"];
					//entity.VrstaUplateRSM = (Convert.IsDBNull(reader["VrstaUplateRSM"]))?(int)0:(System.Int32)reader["VrstaUplateRSM"];
					entity.MinimalniOsobniOdbitak = (System.Int32)reader["MinimalniOsobniOdbitak"];
					//entity.MinimalniOsobniOdbitak = (Convert.IsDBNull(reader["MinimalniOsobniOdbitak"]))?(int)0:(System.Int32)reader["MinimalniOsobniOdbitak"];
					entity.MaksimalniIznosPorezneOlaksice = (System.Int32)reader["MaksimalniIznosPorezneOlaksice"];
					//entity.MaksimalniIznosPorezneOlaksice = (Convert.IsDBNull(reader["MaksimalniIznosPorezneOlaksice"]))?(int)0:(System.Int32)reader["MaksimalniIznosPorezneOlaksice"];
					entity.IdentifikatorIDObrasca = (System.Int32)reader["IdentifikatorIDObrasca"];
					//entity.IdentifikatorIDObrasca = (Convert.IsDBNull(reader["IdentifikatorIDObrasca"]))?(int)0:(System.Int32)reader["IdentifikatorIDObrasca"];
					entity.DoprinosPoDanuBoravkaUInozemstvu = reader.IsDBNull(reader.GetOrdinal("DoprinosPoDanuBoravkaUInozemstvu")) ? null : (System.Decimal?)reader["DoprinosPoDanuBoravkaUInozemstvu"];
					//entity.DoprinosPoDanuBoravkaUInozemstvu = (Convert.IsDBNull(reader["DoprinosPoDanuBoravkaUInozemstvu"]))?0:(System.Decimal?)reader["DoprinosPoDanuBoravkaUInozemstvu"];
					entity.DoprinosNezgoda = reader.IsDBNull(reader.GetOrdinal("DoprinosNezgoda")) ? null : (System.Single?)reader["DoprinosNezgoda"];
					//entity.DoprinosNezgoda = (Convert.IsDBNull(reader["DoprinosNezgoda"]))?0.0F:(System.Single?)reader["DoprinosNezgoda"];
					entity.DoprinosZdravstveno = reader.IsDBNull(reader.GetOrdinal("DoprinosZdravstveno")) ? null : (System.Single?)reader["DoprinosZdravstveno"];
					//entity.DoprinosZdravstveno = (Convert.IsDBNull(reader["DoprinosZdravstveno"]))?0.0F:(System.Single?)reader["DoprinosZdravstveno"];
					entity.DoprinosZaposljavanjeSInvaliditetom = reader.IsDBNull(reader.GetOrdinal("DoprinosZaposljavanjeSInvaliditetom")) ? null : (System.Single?)reader["DoprinosZaposljavanjeSInvaliditetom"];
					//entity.DoprinosZaposljavanjeSInvaliditetom = (Convert.IsDBNull(reader["DoprinosZaposljavanjeSInvaliditetom"]))?0.0F:(System.Single?)reader["DoprinosZaposljavanjeSInvaliditetom"];
					entity.RSMVrstaObveznika = (System.Int32)reader["RSMVrstaObveznika"];
					//entity.RSMVrstaObveznika = (Convert.IsDBNull(reader["RSMVrstaObveznika"]))?(int)0:(System.Int32)reader["RSMVrstaObveznika"];
					entity.DoprinosZaposljavanje = reader.IsDBNull(reader.GetOrdinal("DoprinosZaposljavanje")) ? null : (System.Single?)reader["DoprinosZaposljavanje"];
					//entity.DoprinosZaposljavanje = (Convert.IsDBNull(reader["DoprinosZaposljavanje"]))?0.0F:(System.Single?)reader["DoprinosZaposljavanje"];
					entity.MIO1aPostotak = reader.IsDBNull(reader.GetOrdinal("MIO1aPostotak")) ? null : (System.Single?)reader["MIO1aPostotak"];
					//entity.MIO1aPostotak = (Convert.IsDBNull(reader["MIO1aPostotak"]))?0.0F:(System.Single?)reader["MIO1aPostotak"];
					entity.MIO1bPostotak = reader.IsDBNull(reader.GetOrdinal("MIO1bPostotak")) ? null : (System.Single?)reader["MIO1bPostotak"];
					//entity.MIO1bPostotak = (Convert.IsDBNull(reader["MIO1bPostotak"]))?0.0F:(System.Single?)reader["MIO1bPostotak"];
					entity.MIO2Postotak = reader.IsDBNull(reader.GetOrdinal("MIO2Postotak")) ? null : (System.Single?)reader["MIO2Postotak"];
					//entity.MIO2Postotak = (Convert.IsDBNull(reader["MIO2Postotak"]))?0.0F:(System.Single?)reader["MIO2Postotak"];
					entity.NajvisaMjOsnovica = reader.IsDBNull(reader.GetOrdinal("NajvisaMjOsnovica")) ? null : (System.Decimal?)reader["NajvisaMjOsnovica"];
					//entity.NajvisaMjOsnovica = (Convert.IsDBNull(reader["NajvisaMjOsnovica"]))?0:(System.Decimal?)reader["NajvisaMjOsnovica"];
					entity.AcceptChanges();
					rows.Add(entity);
					pageLength -= 1;
				}
				recordnum += 1;
			}
			return rows;
		}
		
		
		/// <summary>
		/// Refreshes the <see cref="VwObracunDefaultVrijednosti"/> object from the <see cref="IDataReader"/>.
		/// </summary>
		/// <param name="reader">The <see cref="IDataReader"/> to read from.</param>
		/// <param name="entity">The <see cref="VwObracunDefaultVrijednosti"/> object to refresh.</param>
		protected void RefreshEntity(IDataReader reader, VwObracunDefaultVrijednosti entity)
		{
			reader.Read();
			entity.VrstaUplateRSM = (System.Int32)reader["VrstaUplateRSM"];
			//entity.VrstaUplateRSM = (Convert.IsDBNull(reader["VrstaUplateRSM"]))?(int)0:(System.Int32)reader["VrstaUplateRSM"];
			entity.MinimalniOsobniOdbitak = (System.Int32)reader["MinimalniOsobniOdbitak"];
			//entity.MinimalniOsobniOdbitak = (Convert.IsDBNull(reader["MinimalniOsobniOdbitak"]))?(int)0:(System.Int32)reader["MinimalniOsobniOdbitak"];
			entity.MaksimalniIznosPorezneOlaksice = (System.Int32)reader["MaksimalniIznosPorezneOlaksice"];
			//entity.MaksimalniIznosPorezneOlaksice = (Convert.IsDBNull(reader["MaksimalniIznosPorezneOlaksice"]))?(int)0:(System.Int32)reader["MaksimalniIznosPorezneOlaksice"];
			entity.IdentifikatorIDObrasca = (System.Int32)reader["IdentifikatorIDObrasca"];
			//entity.IdentifikatorIDObrasca = (Convert.IsDBNull(reader["IdentifikatorIDObrasca"]))?(int)0:(System.Int32)reader["IdentifikatorIDObrasca"];
			entity.DoprinosPoDanuBoravkaUInozemstvu = reader.IsDBNull(reader.GetOrdinal("DoprinosPoDanuBoravkaUInozemstvu")) ? null : (System.Decimal?)reader["DoprinosPoDanuBoravkaUInozemstvu"];
			//entity.DoprinosPoDanuBoravkaUInozemstvu = (Convert.IsDBNull(reader["DoprinosPoDanuBoravkaUInozemstvu"]))?0:(System.Decimal?)reader["DoprinosPoDanuBoravkaUInozemstvu"];
			entity.DoprinosNezgoda = reader.IsDBNull(reader.GetOrdinal("DoprinosNezgoda")) ? null : (System.Single?)reader["DoprinosNezgoda"];
			//entity.DoprinosNezgoda = (Convert.IsDBNull(reader["DoprinosNezgoda"]))?0.0F:(System.Single?)reader["DoprinosNezgoda"];
			entity.DoprinosZdravstveno = reader.IsDBNull(reader.GetOrdinal("DoprinosZdravstveno")) ? null : (System.Single?)reader["DoprinosZdravstveno"];
			//entity.DoprinosZdravstveno = (Convert.IsDBNull(reader["DoprinosZdravstveno"]))?0.0F:(System.Single?)reader["DoprinosZdravstveno"];
			entity.DoprinosZaposljavanjeSInvaliditetom = reader.IsDBNull(reader.GetOrdinal("DoprinosZaposljavanjeSInvaliditetom")) ? null : (System.Single?)reader["DoprinosZaposljavanjeSInvaliditetom"];
			//entity.DoprinosZaposljavanjeSInvaliditetom = (Convert.IsDBNull(reader["DoprinosZaposljavanjeSInvaliditetom"]))?0.0F:(System.Single?)reader["DoprinosZaposljavanjeSInvaliditetom"];
			entity.RSMVrstaObveznika = (System.Int32)reader["RSMVrstaObveznika"];
			//entity.RSMVrstaObveznika = (Convert.IsDBNull(reader["RSMVrstaObveznika"]))?(int)0:(System.Int32)reader["RSMVrstaObveznika"];
			entity.DoprinosZaposljavanje = reader.IsDBNull(reader.GetOrdinal("DoprinosZaposljavanje")) ? null : (System.Single?)reader["DoprinosZaposljavanje"];
			//entity.DoprinosZaposljavanje = (Convert.IsDBNull(reader["DoprinosZaposljavanje"]))?0.0F:(System.Single?)reader["DoprinosZaposljavanje"];
			entity.MIO1aPostotak = reader.IsDBNull(reader.GetOrdinal("MIO1aPostotak")) ? null : (System.Single?)reader["MIO1aPostotak"];
			//entity.MIO1aPostotak = (Convert.IsDBNull(reader["MIO1aPostotak"]))?0.0F:(System.Single?)reader["MIO1aPostotak"];
			entity.MIO1bPostotak = reader.IsDBNull(reader.GetOrdinal("MIO1bPostotak")) ? null : (System.Single?)reader["MIO1bPostotak"];
			//entity.MIO1bPostotak = (Convert.IsDBNull(reader["MIO1bPostotak"]))?0.0F:(System.Single?)reader["MIO1bPostotak"];
			entity.MIO2Postotak = reader.IsDBNull(reader.GetOrdinal("MIO2Postotak")) ? null : (System.Single?)reader["MIO2Postotak"];
			//entity.MIO2Postotak = (Convert.IsDBNull(reader["MIO2Postotak"]))?0.0F:(System.Single?)reader["MIO2Postotak"];
			entity.NajvisaMjOsnovica = reader.IsDBNull(reader.GetOrdinal("NajvisaMjOsnovica")) ? null : (System.Decimal?)reader["NajvisaMjOsnovica"];
			//entity.NajvisaMjOsnovica = (Convert.IsDBNull(reader["NajvisaMjOsnovica"]))?0:(System.Decimal?)reader["NajvisaMjOsnovica"];
			reader.Close();
	
			entity.AcceptChanges();
		}
		
		/*
		/// <summary>
		/// Refreshes the <see cref="VwObracunDefaultVrijednosti"/> object from the <see cref="DataSet"/>.
		/// </summary>
		/// <param name="dataSet">The <see cref="DataSet"/> to read from.</param>
		/// <param name="entity">The <see cref="VwObracunDefaultVrijednosti"/> object.</param>
		protected static void RefreshEntity(DataSet dataSet, VwObracunDefaultVrijednosti entity)
		{
			DataRow dataRow = dataSet.Tables[0].Rows[0];
			
			entity.VrstaUplateRSM = (Convert.IsDBNull(dataRow["VrstaUplateRSM"]))?(int)0:(System.Int32)dataRow["VrstaUplateRSM"];
			entity.MinimalniOsobniOdbitak = (Convert.IsDBNull(dataRow["MinimalniOsobniOdbitak"]))?(int)0:(System.Int32)dataRow["MinimalniOsobniOdbitak"];
			entity.MaksimalniIznosPorezneOlaksice = (Convert.IsDBNull(dataRow["MaksimalniIznosPorezneOlaksice"]))?(int)0:(System.Int32)dataRow["MaksimalniIznosPorezneOlaksice"];
			entity.IdentifikatorIDObrasca = (Convert.IsDBNull(dataRow["IdentifikatorIDObrasca"]))?(int)0:(System.Int32)dataRow["IdentifikatorIDObrasca"];
			entity.DoprinosPoDanuBoravkaUInozemstvu = (Convert.IsDBNull(dataRow["DoprinosPoDanuBoravkaUInozemstvu"]))?0:(System.Decimal?)dataRow["DoprinosPoDanuBoravkaUInozemstvu"];
			entity.DoprinosNezgoda = (Convert.IsDBNull(dataRow["DoprinosNezgoda"]))?0.0F:(System.Single?)dataRow["DoprinosNezgoda"];
			entity.DoprinosZdravstveno = (Convert.IsDBNull(dataRow["DoprinosZdravstveno"]))?0.0F:(System.Single?)dataRow["DoprinosZdravstveno"];
			entity.DoprinosZaposljavanjeSInvaliditetom = (Convert.IsDBNull(dataRow["DoprinosZaposljavanjeSInvaliditetom"]))?0.0F:(System.Single?)dataRow["DoprinosZaposljavanjeSInvaliditetom"];
			entity.RSMVrstaObveznika = (Convert.IsDBNull(dataRow["RSMVrstaObveznika"]))?(int)0:(System.Int32)dataRow["RSMVrstaObveznika"];
			entity.DoprinosZaposljavanje = (Convert.IsDBNull(dataRow["DoprinosZaposljavanje"]))?0.0F:(System.Single?)dataRow["DoprinosZaposljavanje"];
			entity.MIO1aPostotak = (Convert.IsDBNull(dataRow["MIO1aPostotak"]))?0.0F:(System.Single?)dataRow["MIO1aPostotak"];
			entity.MIO1bPostotak = (Convert.IsDBNull(dataRow["MIO1bPostotak"]))?0.0F:(System.Single?)dataRow["MIO1bPostotak"];
			entity.MIO2Postotak = (Convert.IsDBNull(dataRow["MIO2Postotak"]))?0.0F:(System.Single?)dataRow["MIO2Postotak"];
			entity.NajvisaMjOsnovica = (Convert.IsDBNull(dataRow["NajvisaMjOsnovica"]))?0:(System.Decimal?)dataRow["NajvisaMjOsnovica"];
			entity.AcceptChanges();
		}
		*/
			
		#endregion Helper Functions
	}//end class

	#region VwObracunDefaultVrijednostiFilterBuilder
	
	/// <summary>
	/// A strongly-typed instance of the <see cref="SqlFilterBuilder&lt;EntityColumn&gt;"/> class
	/// that is used exclusively with a <see cref="VwObracunDefaultVrijednosti"/> object.
	/// </summary>
	[CLSCompliant(true)]
	public class VwObracunDefaultVrijednostiFilterBuilder : SqlFilterBuilder<VwObracunDefaultVrijednostiColumn>
	{
		#region Constructors

		/// <summary>
		/// Initializes a new instance of the VwObracunDefaultVrijednostiFilterBuilder class.
		/// </summary>
		public VwObracunDefaultVrijednostiFilterBuilder() : base() { }

		/// <summary>
		/// Initializes a new instance of the VwObracunDefaultVrijednostiFilterBuilder class.
		/// </summary>
		/// <param name="ignoreCase">Specifies whether to create case-insensitive statements.</param>
		public VwObracunDefaultVrijednostiFilterBuilder(bool ignoreCase) : base(ignoreCase) { }

		/// <summary>
		/// Initializes a new instance of the VwObracunDefaultVrijednostiFilterBuilder class.
		/// </summary>
		/// <param name="ignoreCase">Specifies whether to create case-insensitive statements.</param>
		/// <param name="useAnd">Specifies whether to combine statements using AND or OR.</param>
		public VwObracunDefaultVrijednostiFilterBuilder(bool ignoreCase, bool useAnd) : base(ignoreCase, useAnd) { }

		#endregion Constructors
	}

	#endregion VwObracunDefaultVrijednostiFilterBuilder

	#region VwObracunDefaultVrijednostiParameterBuilder
	
	/// <summary>
	/// A strongly-typed instance of the <see cref="ParameterizedSqlFilterBuilder&lt;EntityColumn&gt;"/> class
	/// that is used exclusively with a <see cref="VwObracunDefaultVrijednosti"/> object.
	/// </summary>
	[CLSCompliant(true)]
	public class VwObracunDefaultVrijednostiParameterBuilder : ParameterizedSqlFilterBuilder<VwObracunDefaultVrijednostiColumn>
	{
		#region Constructors

		/// <summary>
		/// Initializes a new instance of the VwObracunDefaultVrijednostiParameterBuilder class.
		/// </summary>
		public VwObracunDefaultVrijednostiParameterBuilder() : base() { }

		/// <summary>
		/// Initializes a new instance of the VwObracunDefaultVrijednostiParameterBuilder class.
		/// </summary>
		/// <param name="ignoreCase">Specifies whether to create case-insensitive statements.</param>
		public VwObracunDefaultVrijednostiParameterBuilder(bool ignoreCase) : base(ignoreCase) { }

		/// <summary>
		/// Initializes a new instance of the VwObracunDefaultVrijednostiParameterBuilder class.
		/// </summary>
		/// <param name="ignoreCase">Specifies whether to create case-insensitive statements.</param>
		/// <param name="useAnd">Specifies whether to combine statements using AND or OR.</param>
		public VwObracunDefaultVrijednostiParameterBuilder(bool ignoreCase, bool useAnd) : base(ignoreCase, useAnd) { }

		#endregion Constructors
	}

	#endregion VwObracunDefaultVrijednostiParameterBuilder
} // end namespace
